import fetch from 'node-fetch';

/**
 * 获取用户登录态信息并返回 ops_token
 * @param {string} userName - 用户名
 * @returns {Promise<string>} ops_token
 * @throws 错误时抛出异常
 */
export async function fetchUserOpsToken(podName) {
    if (!podName) {
        throw new Error('pod不能为空');
    }

    const url = `https://admin-feature.vbkrhk.com/auto-ai/vops/user/detail?userName=${encodeURIComponent(userName)}`;
    const res = await fetch(url);

    if (!res.ok) {
        throw new Error(`请求失败，状态码：${res.status}`);
    }

    const json = await res.json();

    const { code, msg, data } = json;

    if (code !== 0) {
        throw new Error(`登录异常，错误信息: ${msg}`);
    }

    if (!data) {
        throw new Error('返回数据为空，请检查用户插件是否正确。');
    }

    const { opsToken, depart, name } = data;

    if (!opsToken) {
        throw new Error('请域内刷新一下ops');
    }

    console.log(`欢迎 ${depart} 的 ${name}`);

    return opsToken;
}
